package com.yt.user.models.dto;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import com.yt.common.dto.BaseDTO;

/**
 * 客户信息DTO
 *
 * @author yzz
 * @Date 2025-10-22 09:43:50
 */
@EqualsAndHashCode(callSuper = false)
@TableName("customer_info")
@ApiModel(value="客户信息对象", description="客户信息对象")
public class CustomerInfoDTO extends BaseDTO implements Serializable {

    // 使用transient关键字隐藏父类的id字段，并使用注解标记为不存在于数据库中
    @TableField(exist = false)
    private transient Long id;
    
    /**
     * 使用字符串类型ID作为主键，直接映射数据库的id字段
     */
    @TableId(value = "id")
    @ApiModelProperty(value = "客户ID（主键）")
    private String customerId;

    @ApiModelProperty(value = "客户名称（企业名/个人姓名）")
    @TableField("name")
    private String name;
    
    @ApiModelProperty(value = "客户类型（如：企业、个人）")
    @TableField("type")
    private String type;
    
    @ApiModelProperty(value = "所属社区/区域")
    @TableField("community")
    private String community;
    
    @ApiModelProperty(value = "客户对接总负责人")
    @TableField("manager")
    private String manager;
    
    @ApiModelProperty(value = "专属服务专员")
    @TableField("specialist")
    private String specialist;
    
    @ApiModelProperty(value = "社区经理（负责该区域的经理）")
    @TableField("community_manager")
    private String communityManager;
    
    @ApiModelProperty(value = "所属行业ID（外键，关联industry表）")
    @TableField("industry_id")
    private Long industryId;
    
    // 手动添加getter和setter方法
    public String getCustomerId() {
        return customerId;
    }
    
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getType() {
        return type;
    }
    
    public void setType(String type) {
        this.type = type;
    }
    
    public String getCommunity() {
        return community;
    }
    
    public void setCommunity(String community) {
        this.community = community;
    }
    
    public String getManager() {
        return manager;
    }
    
    public void setManager(String manager) {
        this.manager = manager;
    }
    
    public String getSpecialist() {
        return specialist;
    }
    
    public void setSpecialist(String specialist) {
        this.specialist = specialist;
    }
    
    public String getCommunityManager() {
        return communityManager;
    }
    
    public void setCommunityManager(String communityManager) {
        this.communityManager = communityManager;
    }
    
    public Long getIndustryId() {
        return industryId;
    }
    
    public void setIndustryId(Long industryId) {
        this.industryId = industryId;
    }
    
    @Override
    public String toString() {
        return "CustomerInfoDTO{" +
                "id=" + id +
                ", customerId='" + customerId + '\'' +
                ", name='" + name + '\'' +
                ", type='" + type + '\'' +
                ", community='" + community + '\'' +
                ", manager='" + manager + '\'' +
                ", specialist='" + specialist + '\'' +
                ", communityManager='" + communityManager + '\'' +
                ", industryId=" + industryId +
                '}';
    }
}